git 3-way merge
mergeなので、対象となる2つのファイルの情報でいいようだけど、分岐前のファイルの情報が必要な時がある。
source, targeの両方に変更があり得る場合。
2-wayだと片方に削除がある場合、もう片方が追加したとみなされる
よって、3つファイルを比較してmergeする。
A-B, B-C, A-C 3つの wayがあるので、3way かな。
https://gyazo.com/0d2cf12a3ed333a62cbc788537ce5eed
参考
あるファイルから他者と自分が別々の変更を行った結果、2つのファイルができてしまったため、 他者が修正したファイルと自分が修正したファイルをマージして 一つのファイルに戻したいとします。このとき、修正前の元のファイルが残っていれば、他者ファイル、自分のファイルの3つのファイルを元に ある程度自動的に修正を1つのファイルにマージすることが可能です。 この3つのファイルから(自動的な)マージをすることは、3方向マージ(3way-merge)と呼ばれています。
https://i.stack.imgur.com/d7lYn.gif